//
//  HMUserAccount.swift
//  Weibo
//
//  Created by 米易雅克 on 16/4/13.
//  Copyright © 2016年 米易雅克. All rights reserved.
//

import UIKit

class HMUserAccount: NSObject {
    /// 用户授权的唯一票据
    var access_token: String?
    
    /// access_token的生命周期，单位是秒数, 基本数据类型不要定义为可选,定义为可选,kvc找不到这个属性
    var expires_in: NSTimeInterval = 0 {
    
        didSet{
        
            expiresDate = NSDate(timeIntervalSinceNow: expires_in)
        
        
        }
    
    }
    /// 过期时间 NSDate,NSDate比较时间方便
    var expiresDate : NSDate?
    /// 授权用户的UID
    var uid: String?
    ///用户昵称
    var screen_name : String?

    ///用户头像
    var avatar_large : String?
    /// 字典转模型
    init(dict: [String : AnyObject]) {
        super.init()
        
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    /// 如果不记得,CustomStringConvertible
    /// 打印对象,只读计算性属性
    override var description: String {
    
    
        get{
        return"access_token:\(access_token),expires_in:\(expires_in),uid:\(uid)"
        
        
        }
    
    }
//MARK: 归档和解当
//    解档
 
    required init?(coder aDecoder: NSCoder){
    
    access_token = aDecoder.decodeObjectForKey("access_token") as? String
    expires_in = (aDecoder.decodeObjectForKey("expires_in") as? NSTimeInterval)!
    expiresDate = aDecoder.decodeObjectForKey("expiresDate") as? NSDate
    uid = aDecoder.decodeObjectForKey("uid") as? String
    screen_name = aDecoder.decodeObjectForKey("screen_name") as? String
    avatar_large = aDecoder.decodeObjectForKey("avatar_large") as? String
    
    }
//    归档
    func encodeWithCoder(aCoder: NSCoder) {
    
    aCoder.encodeObject(access_token,forKey: "access_token")
    aCoder.encodeObject(expires_in,forKey: "expires_in")
    aCoder.encodeObject(expiresDate,forKey: "expiresDate")
    aCoder.encodeObject(uid,forKey: "uid")
    aCoder.encodeObject(screen_name,forKey: "screen_name")
    aCoder.encodeObject(avatar_large,forKey: "avatar_large")
    
    
    }
}
